#导入os模块
import os
import  math
#定义一个统计指定文件夹大小的函数
def getFsize(file_path):
    size = 0;
    #判断是否文件
    if os.path.isfile(file_path):
        size += os.path.getsize(file_path)
    else :
        #列出所有文件和文件夹
        list_file = os.listdir(file_path)
        for i in list_file:
            #拼接文件路径
            file_path2 = os.path.join(file_path, i)
            #判断是否文件
            if os.path.isfile(file_path2):
                #计算文件大小
                size += os.path.getsize(file_path2)
            else:
                #调用函数本身，再次计算深层次文件或文件夹
                size += getFsize(file_path2)

    return  size

def byte(fize_size):
    size = 0
    if 1 <= fize_size <1024:
        size = str('%.2f' % (fize_size / 1)) + 'B'
    if math.pow(1024, 1) <= fize_size <math.pow(1024, 2):
        size = str('%.2f' % (fize_size / math.pow(1024, 1))) + 'KB'
    if math.pow(1024, 2) <= fize_size <math.pow(1024, 3):
        size = str('%.2f' % (fize_size / math.pow(1024, 2))) + 'MB'
    if math.pow(1024, 3) <= fize_size <math.pow(1024, 4):
        size = str('%.2f' % (fize_size / math.pow(1024, 3))) + 'GB'
    # if 1 <= fize_size <1024:
    #     size = str(round((fize_size / 1), 2)) + 'B'
    # if math.pow(1024, 1) <= fize_size <math.pow(1024, 2):
    #     size = str(round((fize_size / math.pow(1024, 1)), 2)) + 'KB'
    # if math.pow(1024, 2) <= fize_size <math.pow(1024, 3):
    #     size = str(round((fize_size / math.pow(1024, 2)), 2)) + 'MB'
    # if math.pow(1024, 3) <= fize_size <math.pow(1024, 4):
    #     size = str(round((fize_size / math.pow(1024, 3)), 2)) + 'GB'
    return size

file1 = getFsize('D:\huorong')
a = byte(file1)
print(a)

